/*******************************************************************************
 * 文件名: NumberFormat.java
 * 描    述: 数值转换类
 * 创建人: Dean Huang(hudi-112@163.com)
 * 日　期: 2017-12-22
 * 描　述: 文件描述
 * 版　本: 1.0
 *******************************************************************************/

package com.z1.core.format;

import java.text.DecimalFormat;

public class NumberFormat {

	private static DecimalFormat decimalFormat = new DecimalFormat();
	
	public static String format(String style, int value){
		decimalFormat.applyPattern(style);
		return decimalFormat.format(value);
	}
	public static String format(String style, float value) {
		decimalFormat.applyPattern(style);
		return decimalFormat.format(value);
	}
	
	public static String format(String style, double value) {
		decimalFormat.applyPattern(style);
		return decimalFormat.format(value);
	}
	
	public static String formatPercent(float value) {
		decimalFormat.applyPattern("0.00%");
		return decimalFormat.format(value);
	}
	
	public static String formatPercent(double value) {
		decimalFormat.applyPattern("0.00%");
		return decimalFormat.format(value);
	}
	
	public static int hexToDecimal(String hex) {
		int sum = 0;
		for (int i = hex.length() - 1; i >= 0; i--) {
			int c = 0;
			switch (hex.charAt(i)) {
			case '0' : c = 0;break;
			case '1' : c = 1;break;
			case '2' : c = 2;break;
			case '3' : c = 3;break;
			case '4' : c = 4;break;
			case '5' : c = 5;break;
			case '6' : c = 6;break;
			case '7' : c = 7;break;
			case '8' : c = 8;break;
			case '9' : c = 9;break;
			case 'A' : 
			case 'a' : c = 10;break;
			case 'B' : 
			case 'b' : c = 11;break;
			case 'C' : 
			case 'c' : c = 12;break;
			case 'D' : 
			case 'd' : c = 13;break;
			case 'E' : 
			case 'e' : c = 14;break;
			case 'F' : 
			case 'f' : c = 15;break;
			}
			sum += c * (int)Math.pow(16, hex.length() - 1 - i);
		}
		return sum;
	}
	
}
